Transaction Log Backup এবং Recovery SQL Server-এর গুরুত্বপূর্ণ কার্যক্রম, যা ডেটাবেসের অখণ্ডতা, পুনরুদ্ধার এবং ডেটা সুরক্ষাকে নিশ্চিত করতে সাহায্য করে। Transaction Log হলো SQL Server-এর একটি বিশেষ ফাইল যেখানে সমস্ত transaction (ডেটাবেসে করা সকল ইনসার্ট, আপডেট, ডিলিট অপারেশন) লগ করা হয়। এটি ডেটাবেসে সমস্ত কার্যক্রম ট্র্যাক করার জন্য ব্যবহৃত হয় এবং সিস্টেম ক্র্যাশ হলে বা জরুরি অবস্থায় ডেটা পুনরুদ্ধারের জন্য অপরিহার্য।
১. Transaction Log Backup
Transaction Log Backup ডেটাবেসের ট্রানজ্যাকশন লগ ফাইলের একটি কপি তৈরি করে, যা পরবর্তীতে ডেটাবেস রিকভারি প্রক্রিয়ায় ব্যবহৃত হয়। যখন SQL Server-এ ট্রানজ্যাকশন করা হয়, সেই ট্রানজেকশনগুলি প্রথমে transaction log-এ লেখা হয় এবং transaction log backup এর মাধ্যমে সেই ট্রানজেকশনগুলো সুরক্ষিত করা যায়।
Transaction Log Backup এর সুবিধা:
- Point-in-Time Recovery: এই ব্যাকআপের মাধ্যমে, ডেটাবেসে কোনো নির্দিষ্ট সময় পর্যন্ত বা কোনো নির্দিষ্ট পয়েন্ট পর্যন্ত পুনরুদ্ধার করা সম্ভব হয়।
- Recovery Model: Full বা Bulk-Logged রিকভারি মডেল ব্যবহার করলে ট্রানজ্যাকশন লগ ব্যাকআপ করা যায় এবং এটি ডেটাবেসের নিরাপত্তা এবং পুনরুদ্ধার সক্ষমতা বৃদ্ধি করে।
- Minimize Data Loss: ব্যাকআপের মাধ্যমে আপনি সর্বশেষ স্টেট অব ডেটাবেসের কাছাকাছি অবস্থায় ফিরে আসতে পারবেন, এর ফলে ডেটা হারানোর পরিমাণ কম হয়।
Transaction Log Backup এর সিনট্যাক্স:
BACKUP LOG DatabaseName
TO DISK = 'C:\Backup\DatabaseName_LogBackup.bak';
এটি DatabaseName ডেটাবেসের একটি transaction log backup তৈরি করবে এবং সেই ফাইলটি নির্দিষ্ট পাথে সংরক্ষণ করবে।
ব্যাকআপ ফ্রিকোয়েন্সি:
- এটি সাধারণত ডেটাবেসের গুরুত্ব এবং লোডের উপর নির্ভর করে নির্ধারিত হয়। বড় বা ক্রিটিকাল সিস্টেমের জন্য এটি ঘণ্টায় ঘণ্টায় বা প্রতি কয়েক মিনিটে করা হতে পারে।
২. Transaction Log Recovery
Transaction Log Recovery হচ্ছে ট্রানজেকশন লগ ব্যাকআপ ব্যবহার করে ডেটাবেসে কোনো সমস্যা বা ক্র্যাশ পরবর্তী ডেটা পুনরুদ্ধার প্রক্রিয়া। Transaction Log Recovery মূলত Point-in-Time Recovery কৌশল ব্যবহার করে ডেটাবেসে প্রতিটি ট্রানজ্যাকশনের ফলাফল পুনঃস্থাপন করতে সাহায্য করে।
Recovery Models:
SQL Server তিনটি ধরনের রিকভারি মডেল প্রদান করে, যা টেবিলের ট্রানজেকশন লগ ব্যাকআপের কার্যকারিতা ও রিকভারি কৌশল নির্ধারণ করে:
- Simple Recovery Model:
- এই মডেল ডেটাবেসের সমস্ত ট্রানজেকশন লগ ফাইল প্রক্রিয়া করে, তবে ট্রানজেকশন লগ ব্যাকআপ করার কোনো প্রয়োজন হয় না।
- Log backups নেওয়া যায় না এবং আপনার ডেটা পুনরুদ্ধারের ক্ষেত্রে সীমাবদ্ধতা থাকতে পারে।
- Full Recovery Model:
- এই মডেলটি ট্রানজেকশন লগের সমস্ত রেকর্ড সুরক্ষিত করে এবং ট্রানজেকশন লগ ব্যাকআপ নেওয়ার মাধ্যমে Point-in-Time Recovery করতে সাহায্য করে।
- এই মডেলটি সর্বাধিক নিরাপদ এবং সর্বোচ্চ ডেটা রিকভারি সক্ষমতা প্রদান করে।
- Bulk-Logged Recovery Model:
- এই মডেলটি ট্রানজেকশন লগ ব্যাকআপের সময় কিছু ট্রানজেকশন (যেমন বড় ইনপুট) কমপক্ষে সঞ্চিত করে। তবে এটি কিছু ক্ষেত্রে পয়েন্ট ইন টাইম রিকভারি সীমিত করতে পারে।
Transaction Log Recovery Steps:
Full Database Backup: প্রথমে ডেটাবেসের একটি পূর্ণ ব্যাকআপ নেওয়া উচিত। এটি একটি বেসলাইন ব্যাকআপ।
BACKUP DATABASE DatabaseName TO DISK = 'C:\Backup\DatabaseName_FullBackup.bak';Transaction Log Backup: এরপর, transaction log backup নেওয়া হয়। এটি ডেটাবেসের সমস্ত ট্রানজেকশন সুরক্ষিত রাখবে।
BACKUP LOG DatabaseName TO DISK = 'C:\Backup\DatabaseName_LogBackup.bak';- Recovery: ডেটাবেস পুনরুদ্ধারের সময় আপনি Full Backup এবং Transaction Log Backups ব্যবহার করে ডেটাবেসের অবস্থা পুনরুদ্ধার করবেন।
Recovery Example:
-- 1. First, restore the full backup
RESTORE DATABASE DatabaseName
FROM DISK = 'C:\Backup\DatabaseName_FullBackup.bak';
-- 2. Then, restore the transaction log backup
RESTORE LOG DatabaseName
FROM DISK = 'C:\Backup\DatabaseName_LogBackup.bak';
-- 3. If you need point-in-time recovery, specify the recovery point
RESTORE LOG DatabaseName
FROM DISK = 'C:\Backup\DatabaseName_LogBackup.bak'
WITH STOPAT = '2023-12-01 14:00:00';
এখানে:
- প্রথমে Full Database Backup পুনরুদ্ধার করা হয়েছে।
- এরপর Transaction Log Backup পুনরুদ্ধার করা হয়েছে।
- STOPAT অপশন ব্যবহার করে একটি নির্দিষ্ট সময় পয়েন্টে ডেটাবেস পুনরুদ্ধার করা হয়েছে।
৩. Transaction Log Shipping
Transaction Log Shipping একটি ডেটাবেস রিকভারি কৌশল, যা একটি প্রাথমিক ডেটাবেস থেকে ট্রানজেকশন লগ ব্যাকআপ অন্য একটি সার্ভারে নিয়মিত পাঠানো হয়। এটি একটি standby server বা disaster recovery পরিকল্পনার অংশ হিসেবে ব্যবহৃত হয়।
Transaction Log Shipping Configuration:
- Primary Server: মূল ডেটাবেস থেকে ট্রানজেকশন লগ ব্যাকআপ তৈরি হয় এবং সেগুলি secondary server-এ পাঠানো হয়।
- Secondary Server: ট্রানজেকশন লগ ব্যাকআপ গ্রহণ করে, এবং সেগুলি পুনরুদ্ধার করে ডেটাবেসকে আপডেট করা হয়।
সারাংশ
- Transaction Log Backup SQL Server-এর একটি গুরুত্বপূর্ণ অংশ যা ডেটাবেসের প্রতিটি পরিবর্তন ট্র্যাক করে এবং ডেটাবেসের পুনরুদ্ধার প্রক্রিয়ায় ব্যবহৃত হয়।
- Transaction Log Recovery একটি বিশেষ কৌশল যা point-in-time recovery এর জন্য ব্যবহৃত হয়, যেখানে ট্রানজেকশন লগ ব্যাকআপ ব্যবহার করে ডেটাবেস একটি নির্দিষ্ট পয়েন্টে পুনরুদ্ধার করা হয়।
- Recovery Models যেমন Full, Simple, এবং Bulk-Logged বিভিন্ন সিস্টেমের জন্য বিভিন্ন রিকভারি কৌশল প্রদান করে, যা ডেটাবেসের নিরাপত্তা এবং পুনরুদ্ধার ক্ষমতা নিশ্চিত করে।
ট্রানজ্যাকশন লগ ব্যাকআপ ও রিকভারি ব্যবস্থাপনা আপনাকে ডেটাবেসের স্থিতিশীলতা ও নিরাপত্তা নিশ্চিত করতে সহায়তা করে, বিশেষত সিস্টেম ক্র্যাশ বা ডেটাবেস বিপর্যয়ের পরিস্থিতিতে।
Read more